/*
                    Tile Class Implementation
*/
#include "Tile.h"

Tile::Tile()
{
    bBlank = true;

    Position = Point(0, 0);
    TilesheetPosition = Point(0, 0);
}

Tile::Tile(const bool& bNewBlank, const Point& NewPosition, const Point& NewTilesheetPosition)
{
    bBlank = bNewBlank;

    Position = NewPosition;
    TilesheetPosition = NewTilesheetPosition;
}

Tile::~Tile()
{

}

bool Tile::operator==(const TileInfo& ComparedInfo) const
{
      if (ComparedInfo.TilesheetPosition.x == this->TilesheetPosition.x)
      {
           if (ComparedInfo.TilesheetPosition.y == this->TilesheetPosition.y)
           {
                return true;
           }
      }

      return false;
}

bool Tile::operator!=(const TileInfo& ComparedInfo) const
{
      if (ComparedInfo.TilesheetPosition.x == this->TilesheetPosition.x)
      {
           if (ComparedInfo.TilesheetPosition.y == this->TilesheetPosition.y)
           {
                return false;
           }
      }

      return true;
}

bool Tile::operator==(const Tile& ComparedInfo) const
{
      if (ComparedInfo.TilesheetPosition.x == this->TilesheetPosition.x)
      {
           if (ComparedInfo.TilesheetPosition.y == this->TilesheetPosition.y)
           {
                return true;
           }
      }

      return false;
}

bool Tile::operator!=(const Tile& ComparedInfo) const
{
      if (ComparedInfo.TilesheetPosition.x == this->TilesheetPosition.x)
      {
           if (ComparedInfo.TilesheetPosition.y == this->TilesheetPosition.y)
           {
                return false;
           }
      }

      return true;
}

bool Tile::operator=(TileInfo& NewInfo)
{
     this->Position = NewInfo.Position;
     this->TilesheetPosition = NewInfo.TilesheetPosition;
}
